//
// Created by Ivor_ on 2022/3/15.
//

#ifndef PHYSICAL_COMPUTING_PACKAGE_NONLINEAREQUATIONS_H
#define PHYSICAL_COMPUTING_PACKAGE_NONLINEAREQUATIONS_H

#include <math.h>

#include "../vectorAndMatrix/matrixCalculate.h"

double* nleSearch(double start, double end, double stepSize, int rootLimit, double* constantParameters, double (*pEquations)());
double nleBisection(double start, double end, double eps, double* constantParameters, double (*pEquations)());
double nleIteration(double iniVal, double eps, double* constantParameters, double (*pIterationEquation)());
double nleNewton(double iniVal, double eps, double* constantParameters, double (*pEquation)(), double (*pEqDerivative)());
double nleChordCut(double initVals[2], double eps, double* constantParameters, double (*pEquation)());
double* nleNewtonForEqitions(int dim, double* initVals, double eps, double* constantParameters, double (* *pEquations)(), double (** *jacobiMatrix)());

#endif //PHYSICAL_COMPUTING_PACKAGE_NONLINEAREQUATIONS_H
